Skip to main content

Actions

Сборка курсов под разные типы требует набор действий. Данные наборы имеют много общего, но частично различаются. Поэтому все действия разбиты на классы-действия (Actions), которые собираются в общую логику в классах ConfigBuilder

IConfigBuilderAction

Интерфейс, который определяет только один метод do(): void. В этом методе и должны быть реализовано действие для конфигурации сборки.

ConfigBuilderAction

Имплементирует интерфейс IConfigBuilderAction, но не определяет метод do, а только добавляет свойство StaticBuild $static_build с объектом текущей сборки. Так что все классы-действия наследуются именно от этого класса

ActionsGroup

Для упрощения работы с классами-действиями создан класс ActionsGroup, который хранит в себе массив классов-действий в свойстве array $action_classes. Этот класс имплементирует интерфейс IConfigBuilderAction, поэтому в нем определен публичный метод do, но вместо своего собственного действия вызывается do метод у всех действий из массива $action_classes.

Благодаря этому можно собрать массив действий и вызвать все действия одним методом do. А так как классы-действия и ActionsGroup имеют одинаковый интерфейс в виде метода do, то можно вкладывать группу в группу для расширения набора действий

Действия

CopyConfigDir

Копирует всю директорию с файлами конфигурации в сборку. Так что в сборку изначально попадают файлы под все типы сборок, задача дальнейших действий - удалить лишние файлы

PrepareHtmlConfig

Подготавливает index*.html файлы под определенную сборку. index.html файл попадает во все типы сборок, а index_scorm.html и index_xapi.html в соответствующие типы. Эти index.html файлы являются входными точками для открытия сборки, и именно в этих файлах хранятся все настройки сборки

PrepareHtmlConfigMultilang

Расширяет класс PrepareHtmlConfig для добавления в сборку информации о переводах

MaybeRemoveJSPanel

Удаляет файлы для JSPanel, если JSPanel выключен в сборке

PrepareTincanFile

Добавляет в файл tincan.xml актуальную информацию о курсе

RemoveTinkanFile

Удаляет tincan.xml файл

PrepareImsmanifestFile

Добавляет в файл imsmanifest.xml актуальную информацию о курсе

RemoveImsmanifestFile

Удаляет imsmanifest.xml файл

RemoveXapiwrapperJS

Удаляет xapiwrapper.min.js файл